// 导入请求模块
const http = require('https')
// 导入参数接口，用来限制接口类型
import spiderOptions from './interfaceOptions/spiderOptions'

// 实现一个爬虫祖宗类
// 这个类接收一个对象，里面包含url，method，header
// 子类继承这个祖宗类，传入url自动开爬
class Spider {
    // 初始化参数值
    options: spiderOptions
    // 设置options参数的字段及类型;设置 method 默认值为 get
    constructor(options: spiderOptions = { url: '', method: 'get' }) {
        this.options = options
        this.start()
    }
    // 设置爬取方法
    start() {
        // 创建请求
        let requset = http.request(this.options.url, (res: any) => {
            let chunks: any = []
            res.on('data', (c: any) => chunks.push(c))
            res.on('end', () => {
                console.log(Buffer.concat(chunks).toString('utf-8'));
            })
        })
        // 发送请求
        requset.end()
    }
}
// 导出祖宗类
export default Spider

